As the number of people using e-services in their every day life grows everyday, systems providing these e-services are required to process an always increasing number of user sessions. In addition, users are now expecting that information and services delivered to be more and more efficient and sophisticated. Then, to achieve this goal, the transactions for each user session often need to be processed by distinct software applications.
For instance, in the travel and tourism industry, a reservation system has to process tenths of thousands of user sessions opened at the same time and that request checking availability of flights. Information provided by the user to such a user session typically includes the date of departure, the origin and destination of the flights. They form part of the user context for that session which also comprises data gathered from the various transactions processed by the session such as availability information, prices, flight references etc.
In order to maintain a sufficient throughput, some solutions are based on centralized computing systems having a single very powerful processing unit. These centralized systems are however hardly scalable both in term of deployment of new additional applications and in term of increasing of processing capabilities. In addition, these systems are not reliable as a failure of the centralized processing unit may lead to a general outage.
Other solutions rely on distributed systems wherein the total processing capability is spread over a large number of distributed machines. In these existing distributed systems all transactions dedicated to a given user session are still managed by a single machine though.
Scalability is then simply achieved by increasing the number of machines so that the overall processing capability of the system can be easily adapted to fulfill the throughput needs.
However, with these distributed systems, it remains difficult to manage the integration of new services, especially when they are based on new software applications intended to interact with the software applications already loaded while always maintaining consistency from the user side.
Hence, to be able to maintain a consistent and unified view from the user side, the new software applications must be loaded on every single machine. On top of being a time consuming operation this does not however allow consistency between all users to be actually achieved until loading step has completed over the entire distributed system.
Therefore, a general objective of the invention is to describe a method and a system capable of providing a user with a unified view of a session, while allowing scalability of processing capability and while easing the integration of new services.